package com.bookrecomm.crawler.service;

import com.bookrecomm.crawler.entity.Book;
import java.util.List;

/**
 * 图书爬虫接口
 * 定义爬虫的基本行为
 */
public interface BookCrawler {
    
    /**
     * 爬取图书列表页
     * @param url 列表页URL
     * @param pageNum 页码
     * @return 图书详情页URL列表
     */
    List<String> crawlBookListPage(String url, int pageNum);
    
    /**
     * 爬取图书详情页
     * @param url 详情页URL
     * @return 图书实体对象
     */
    Book crawlBookDetailPage(String url);
    
    /**
     * 爬取图书评论
     * @param bookId 图书ID或唯一标识
     * @param pageNum 页码
     * @return 评论内容
     */
    List<String> crawlBookComments(String bookId, int pageNum);
    
    /**
     * 保存爬取的图书数据到数据库
     * @param book 图书实体对象
     * @return 是否保存成功
     */
    boolean saveBook(Book book);
    
    /**
     * 开始爬取指定分类的图书
     * @param categoryUrl 分类URL
     * @param pageStart 起始页码
     * @param pageEnd 结束页码
     */
    void startCrawl(String categoryUrl, int pageStart, int pageEnd);
}
